import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * Date: 2023-04-19
 * Time: 11:16
 */
public class IteratorDemo1 {
    public static void main(String[] args) {

        // 创建集合,添加元素
        Collection<String> coll = new ArrayList<>();
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");

        // 创建迭代器对象

        /*
         * 细节注意点:
         *   1.报错NoSuchElementException2
         *   2.迭代器遍历完毕，指针不会复位
         *   3.循环中只能用一次next方法
         *   4.迭代器遍历时，不能用集合的方法进行增加或者删除
         * */

        Iterator<String> it = coll.iterator();

        // 判断是否有下一个元素
        while(it.hasNext()){
            // 获取元素,并移动指针,指针默认指向起始位置
            String s = it.next();
            System.out.println(s);
        }

        // 1.当上面循环结束之后,迭代器的指针就指向了没有元素的位置,此时使用it.next()便会报错
        // String str = it.next(); NoSuchElementException

        // 2.迭代器遍历完毕，指针不会复位
        System.out.println(it.hasNext()); // false

        //3.循环中只能用一次next方法
        // 如果用了两次next方法,并且元素的个数为奇数,则会报错 NoSuchElementException

        // 4.迭代器遍历时，不能用集合的方法进行增加或者删除
        while(it.hasNext()){
            String s = it.next();
            if("bbb".equals(s)){
                coll.remove("bbb");
            }
        }
        System.out.println(coll);
    }
}


